There are many types of computing services, resources and data that computer users and applications need to manage and otherwise access, such as services and data maintained locally, and data maintained on corporate networks and other remotely accessible sites including intranets and the internet. The concept of web services is generally directed to providing a computing service to clients via protocols and standards that are cross-platform in nature. For example, web services provides the basic tools for wiring the nodes of a distributed application together, regardless of the type of platform on which the requesting client is running.
As there are many different computing platforms, various platform-independent mechanisms and protocols that facilitate the exchange of network information are becoming commonplace, including HTTP (HyperText Transfer Protocol), XML (eXtensible Markup Language), XML Schema, and SOAP (Simple Object Access Protocol) XML. The concept of web services, in which businesses, organizations, and other providers offer services to users and applications, is presently based on these standards.
To be of value, web services need to enable users and applications to locate them, and exchange the information needed to execute them. To this end, UDDI (Universal Description Discovery and Integration) provides a set of defined services (e.g., in a universal business registry) that help users and applications discover such businesses, organizations, and other web services providers, along with a description of their available web services and the technical interfaces needed to access those services.
At present, the number of available web services is relatively small, and thus individuals are able to make manual connections between the consumers and providers of web services. Various mechanisms exist or are being developed for locating a type of web service that matches a consumer's given requirements, such as contract requirements detailed in a list of attributes dealing with the required interfaces, including ordering, timing, and resource usage. UDDI-based technology and recent improvements allow narrowly-defined, automated searches of web services, However, as the number of web services scales to the millions, as is likely, the results of such searches may include hundreds or thousands of web services that match a client's criteria. There needs to be an automated way for the client to select a web service from a smaller subset of the many thousands that match.
Ranking retrieved web services by popularity, even if possible, would be a poor model outside of a tightly-controlled network, and thus would be relatively inappropriate for ranking web services made available on the Internet. First, unlike simple web site access, in which the web leaves indelible, highly public link traces, web services, by their very nature, do not leave such traces. Moreover, even if mechanisms were put in place to record traces of web service usage, privacy concerns would become an issue, as an individual's or enterprise's operational practices would be determinable from those traces. Further, operators of specific web services would be inclined to inflate their actual popularity in order to attract new customers, essentially to give themselves a higher ranking in the list of search results based on popularity. Search engine operators might also vary the order of the results, essentially selling higher rankings to web service providers that are willing to pay for an inflated rank, even when their service does not best match a consumer's needs. Moreover, consumers of web services might attempt to deceive others as to the popularity of certain web services, preferring to keep the more responsive web services as a secret from competitors, while perhaps encouraging their competitors to use more unreliable web services.
In sum, what is needed is an automated system for ranking web services that is beneficial to consumers and best matches the consumer's needs. Unlike a popularity-based model, the system needs to be largely impervious to deceptive practices, so that actual ratings cannot be significantly manipulated.